//从vuex插件中导入createStore函数

import {createStore} from 'vuex';

//配置vuex的公共数据、公共函数等模块选项
const store =createStore({
   //存储公共数据的对象，类似于vue里的data
   state : {
    //人员信息数组
    plist :[],

    //保存注册信息的数组【先注册新账号，后登录新账号】
    user :[
      {username:'admin1',pwd:123456,tel:1},
      {username:'admin2',pwd:987654,tel:1},
      {username:'admin3',pwd:123789,tel:1},
      {username:'admin4',pwd:987321,tel:1},
      {username:'admin5',pwd:654321,tel:1},
    ],
    
    // ImgList :[
    //   { id:1 , title:'缤纷彩虹曲奇饼' , imgURL:require('../img/1.jpg') , createTime:1698246169 , grounding:true , hot:16628 , sale:16980 , visits:14979  },
    //   { id:2 , title:'女士单肩手提包' , imgURL:require('../img/2.jpg') , createTime:1698247803 , grounding:false , hot : 15164, sale : 36690, visits : 36690 },
    //   { id:3 , title:'berko蛋糕' , imgURL:require('../img/3.jpg') , createTime:1698247912 , grounding:true , hot : 29014, sale : 28058, visits : 18436 },
    //   { id:4 , title:'巧克力甜甜圈' , imgURL:require('../img/4.jpg') , createTime:1698248025 , grounding:true , hot : 31181, sale : 16296, visits : 9224 },
    //   { id:5 , title:'室内小盆绿植盆栽' , imgURL:require('../img/5.jpg') , createTime:1698248075 , grounding:true , hot : 24051, sale : 22587, visits : 9337 },
    //   { id:6 , title:'粉红少女行李箱' , imgURL:require('../img/6.jpg') , createTime:1698248080 , grounding:true , hot : 18272, sale : 18798, visits : 9566 },
    //   { id:7 , title:'草莓水果沙拉' , imgURL:require('../img/7.jpg') , createTime:1698308075 , grounding:true , hot : 33329, sale : 24138, visits : 10718 },
    //   { id:8 , title:'牛油果的横切面' , imgURL:require('../img/8.jpg') , createTime:1798248075 , grounding:true , hot : 29742, sale : 23337, visits : 11651 },
    //   { id:9 , title:'工作间隙的一杯咖啡' , imgURL:require('../img/9.jpg') , createTime:1598248075 , grounding:true , hot : 18955, sale : 13707, visits : 5822 },
    //   { id:10 , title:'胺多酚女士背包' , imgURL:require('../img/10.jpg') , createTime:1498248080 , grounding:true , hot : 35385, sale : 16266, visits : 8667, },
    //   { id:11 , title:'Rapper' , imgURL:require('../img/11.jpg') , createTime:1660247575 , grounding:true , hot : 17305, sale : 11772, visits : 5559 },
    //   { id:12 , title:'田园风手提包' , imgURL:require('../img/12.jpg') , createTime:1660256075 , grounding:true , hot : 27757, sale : 18476, visits : 5289 },
    //   { id:13 , title:'颜艺满分的少女' , imgURL:require('../img/13.jpg') , createTime:1677247075 , grounding:true , hot : 115903, sale : 17153, visits : 4114 },
    //   { id:14 , title:'希腊·圣托里尼' , imgURL:require('../img/14.jpg') , createTime:1798248088 , grounding:true , hot : 11678, sale : 11088, visits : 5154 },
    //   { id:15 , title:'希腊·爱情海' , imgURL:require('../img/15.jpg') , createTime:1698987575 , grounding:true , hot : 1662, sale : 32106, visits : 31262 },
    //   { id:16 , title:'地中海风格的大门' , imgURL:require('../img/16.jpg') , createTime:1624638075 , grounding:true , hot : 15448, sale : 19066, visits : 16269 },
    //   { id:17 , title:'奶油粉色系小爱心' , imgURL:require('../img/17.jpg') , createTime:1688888075 , grounding:true , hot : 8006, sale : 19792, visits : 12213 },
    //   { id:18 , title:'慵懒风的美女' , imgURL:require('../img/18.jpg') , createTime:1698124578 , grounding:true , hot : 18004, sale : 28439, visits : 28439 },
    //   { id:19 , title:'时尚界的包包都这样装' , imgURL:require('../img/19.jpg') , createTime:1688248075 , grounding:true , hot:16291 , sale:21671 , visits:22657 },
    //   { id:10 , title:'洋娃娃般的欧洲少女' , imgURL:require('../img/20.jpg') , createTime:1618248075 , grounding:true , hot:16291 , sale:21671 , visits:22657 },
    // ]
   },

   //共同点：mutations和actions存储操作函数
   //区别：mutations存储的同步函数（函数一个个按顺序执行），只有此处的函数才能够直接修改state存储的数据
   //所有同步函数都设置第一个参数state：其他参数可选
   mutations : {
     //添加数据的函数：state公共数据，obj组件提交过来的数据
     addlist(state ,obj){
      
      //将数据提交给state里面的plist完成添加操作
      //JSON.parse(JSON.stringify(对象)):深拷贝，将括号里面的变量独立成另一个全新的地址
      //添加之前，现将本次添加的数据独立一个地址，然后再添加
      state.plist.push(JSON.parse(JSON.stringify(obj)));
      alert('添加成功')
   
     },
     zhulist(state ,us){
      //将数据提交给state里面的plist完成添加操作
      //JSON.parse(JSON.stringify(对象)):深拷贝，将括号里面的变量独立成另一个全新的地址
      //添加之前，现将本次添加的数据独立一个地址，然后再添加
      state.user.push(JSON.parse(JSON.stringify(us)));
      alert('注册dasdasdas成功')
   
     },

      //删除state的数据
      dellist(state,i){
        let bool = confirm('是否确认删除当前数据');
        if(bool){
        state.plist.splice(i,1);
        alert('删除成功');
        }else{
          alert('已取消操作');
        }
      },

      //替换新数据  datas参数；包括表单的数据和下标
      editlist(state,datas){
        let i =Number(datas.id);
      state.plist[i]=JSON.parse(JSON.stringify(datas.val));

      },
    
   },
   //区别：actions存储的异步函数（同时执行多个函数），不具备修改state对象的数据，只能作为调用mutations函数的接口
   actions : {
      addMutation(comit,obj){
        console.log(comit,obj);
        
        
      }
   },

   //存储对state的数据加工，类似于computed计算属性（如state存储了时间戳，getter加工成日期格式数据）
   //不影响原来数据，只是在显示的时候进行优化
   getters : {},
   
   //模块，一般用于大型项目的功能划分，登录/注册/忘记密码等与用户信息相关的数据划分一个user模块
   //每一个独立的模块下，可以重新设置5个核心概念
   modules : {}
})

//导出
export default store;